code sketch
Sketch Then Generate: Providing Incremental User Feedback and Guiding LLM Code Generation through Language-Oriented Code Sketches
Zhu-Tian, Chen, Xiong, Zeyu, Yao, Xiaoshuo, Glassman, Elena
Existing solutions (e.g., [11, 21, 25, Crafting effective prompts for code generation or editing with Large 30]), while useful, fall short in providing user feedback during the Language Models (LLMs) is not an easy task. Particularly, the absence prompt crafting process. The lack of such feedback can lead to of immediate, stable feedback during prompt crafting hinders uncertainty about the expected output and potential inefficiencies effective interaction, as users are left to mentally imagine possible in the development process, as users are left to mentally imagine outcomes until the code is generated. In response, we introduce possible outcomes until the code is generated [12, 29]. Language-Oriented Code Sketching, an interactive approach that provides However, providing user feedback during prompt crafting presents instant, incremental feedback in the form of code sketches (i.e., significant challenges. Ideally, feedback should not only be instant incomplete code outlines) during prompt crafting. This approach but also evolve incrementally as the user types their prompt, offering converts a prompt into a code sketch by leveraging the inherent clear and understandable intermediate results that progressively linguistic structures within the prompt and applying classic natural guide the LLM towards the final desired code.
Towards Top-Down Automated Development in Limited Scopes: A Neuro-Symbolic Framework from Expressibles to Executables
Deep code generation is a topic of deep learning for software engineering (DL4SE), which adopts neural models to generate code for the intended functions. Since end-to-end neural methods lack domain knowledge and software hierarchy awareness, they tend to perform poorly w.r.t project-level tasks. To systematically explore the potential improvements of code generation, we let it participate in the whole top-down development from \emph{expressibles} to \emph{executables}, which is possible in limited scopes. In the process, it benefits from massive samples, features, and knowledge. As the foundation, we suggest building a taxonomy on code data, namely code taxonomy, leveraging the categorization of code information. Moreover, we introduce a three-layer semantic pyramid (SP) to associate text data and code data. It identifies the information of different abstraction levels, and thus introduces the domain knowledge on development and reveals the hierarchy of software. Furthermore, we propose a semantic pyramid framework (SPF) as the approach, focusing on software of high modularity and low complexity. SPF divides the code generation process into stages and reserves spots for potential interactions. In addition, we conceived preliminary applications in software development to confirm the neuro-symbolic framework.